import com.web.text.StringUtil;
import com.web.text.diff.StringComparatorUtil;
import com.web.text.split.StringSplitUtil;
import org.junit.Test;

import java.util.List;

public class test {


    @Test
    public void testFindDiff() {
        String left = "<p><span style=\"background-color: rgb(153, 51, 255);\">总编修改，增加102723</span></p><p><span style=\"background-color: rgb(255, 255, 0);\">主编修改，减少采访2个字</span></p><p>责编再次修改，增加中国2个字</p><p><span style=\"background-color: rgb(0, 138, 0);\">责编修改，减少2个字强调</span></p><p><span style=\"background-color: rgb(230, 0, 0);\">记者编辑一下</span></p><p>默克尔在接受《南德意志报》时，中国1027这是“抗击大流行的最薄弱时刻”。这是一个让她“仍然悲伤”的阶段。“去年圣诞节期间”，当测试已经可用时，尽管联邦政府做出了所有努力，但护理机构实施保护性测试制度的时间太长了。</p><p>《南德意志报》在采访中向默克尔提出的一个问题是：在这一危机时期，什么让她最压抑？</p><p>默克尔的回答是：“我仍然对一个阶段感到难过：那是去年的圣诞节。当时已经普遍进行了检测。然而，在老人院和疗养院进行的检测太少。我本人也试图在圣诞节前后与上述部门的负责人通电话。我们免费提供检测，还包括人工费用。然而，这些措施在养老院中落实花的时间太长。当时正是抗击疫情最薄弱的时刻。”</p>";
        String righ = "<p><span style=\"background-color: rgb(153, 51, 255);\">总编修改，增加1027</span></p><p><span style=\"background-color: rgb(255, 255, 0);\">主编修改，减少采访2个字</span></p><p>责编再次修改，增加中国2个字</p><p><span style=\"background-color: rgb(0, 138, 0);\">责编修改，减少2个字强调</span></p><p>默克尔在接受《南德意志报》时，中国1027这是“抗击大流行的最薄弱时刻”。这是一个让她“仍然悲伤”的阶段。“去年圣诞节期间”，当测试已经可用时，尽管联邦政府做出了所有努力，但护理机构实施保护性测试制度的时间太长了。</p><p>《南德意志报》在采访中向默克尔提出的一个问题是：在这一危机时期，什么让她最压抑？</p><p>默克尔的回答是：“我仍然对一个阶段感到难过：那是去年的圣诞节。当时已经普遍进行了检测。然而，在老人院和疗养院进行的检测太少。我本人也试图在圣诞节前后与上述部门的负责人通电话。我们免费提供检测，还包括人工费用。然而，这些措施在养老院中落实花的时间太长。当时正是抗击疫情最薄弱的时刻。”</p>";
        String comparator = StringComparatorUtil.comparator(left, righ, false);
        System.out.println(comparator);
    }


    @Test
    public void testSplit() {
        String left = "<p><span style=\"background-color: rgb(153, 51, 255);\">总编修改，增加102723</span></p><p><span style=\"background-color: rgb(255, 255, 0);\">主编修改，减少采访2个字</span></p><p>责编再次修改，增加中国2个字</p><p><span style=\"background-color: rgb(0, 138, 0);\">责编修改，减少2个字强调</span></p><p><span style=\"background-color: rgb(230, 0, 0);\">记者编辑一下</span></p><p>默克尔在接受《南德意志报》时，中国1027这是“抗击大流行的最薄弱时刻”。这是一个让她“仍然悲伤”的阶段。“去年圣诞节期间”，当测试已经可用时，尽管联邦政府做出了所有努力，但护理机构实施保护性测试制度的时间太长了。</p><p>《南德意志报》在采访中向默克尔提出的一个问题是：在这一危机时期，什么让她最压抑？</p><p>默克尔的回答是：“我仍然对一个阶段感到难过：那是去年的圣诞节。当时已经普遍进行了检测。然而，在老人院和疗养院进行的检测太少。我本人也试图在圣诞节前后与上述部门的负责人通电话。我们免费提供检测，还包括人工费用。然而，这些措施在养老院中落实花的时间太长。当时正是抗击疫情最薄弱的时刻。”</p>";
        String comparator = StringSplitUtil.split(left, 5);
        System.out.println(comparator);
    }


    @Test
    public void testSubsection() {
        String str = "<p>今年早些时候，一篇中科院博士论文的致谢部分在网络刷屏，感动无数网友。论文作者叫黄国平，毕业于中科院自动化研究所。他的故事，让人想起那句话：“穷且益坚，不坠青云之志。”</p>\n" +
                "<p>“宝剑锋从磨砺出，梅花香自苦寒来，”其实有不少走出困顿、破茧成蝶的学子都曾在论文的后记、致谢部分回首求学路。澎湃新闻记者注意到，一篇十几年前的博士论文后记近期再度引发社会舆论关注，文章的作者是北京大学博士肖清和。</p>\n" +
                "<p>公开资料显示，肖清和，男，1980年5月出生，2003年9月师从北京大学孙尚扬教授，于2009年7月获博士学位，目前担任上海大学历史系副教授、宗教与中国社会研究中心副主任。他的主要研究领域为明末清初天主教史、宗教哲学等。肖清和曾赴香港中文大学、比利时鲁汶大学等学术机构参加学术研讨会与学术工作坊。</p><p>肖清和主持或参与国家社科基金多项，著有《20世纪宗教观研究》（合著）、《〈铎书〉校注》（合校）等，在海内外学术刊物上发表学术论文、书评、译文三十余篇，论文曾被《光明日报》以及《中国社会科学文摘》转载，曾获上海市第十一届哲学社会科学优秀成果奖。</p><p>这篇引起舆论关注的博士论文后记来自其论文《“天会”与“吾党”：明末清初天主教徒群体之形成与交往研究(1580-1722) 》，作者讲述了自己本是一位放牛娃，从安徽潜山一个小山村出发，最后考入北大。</p><p>不少自媒体在转发这篇后记时点评：“其在底层社会所经历的种种人性之恶和苦难中的点滴温暖，曾经让许多与他有相似命运的莘莘学子产生过强烈的共鸣。他的论文获得了2011年全国百篇优秀博士论文，但比论文本身更震撼的，是这篇在博士生圈子里面流传甚广的后记。”</p><p>文章感动了不少网友，有读者就留言：“今日看到肖清和研究员的博士论文后记，感触很深，看到中间有一段，差点哭出来。看完好像有点找回自己这么多年努力读书的一点初心。 ”</p><p>肖清和在文章中写道：“在我上学的22年（1987－2009）中，充满了坎坷与风雨。7岁时，母亲想让我上一年级，因为交不起钱，只好先上幼儿园，荒废了宝贵的一年时间。12岁时，家里勉强让我上到五年级。差一点因为交不起考试费用，而失去参加小升初考试。班主任老师来我家做工作，可是，实在没钱。结果，班主任老师代我交了钱。我考了全乡第二名。然而，这个成绩丝毫没有给我带来喜悦。相反，却是无尽的痛苦。因为我不知道我家从哪里弄到学费。”</p><p>“人是没法选择自己的出生的。”肖清和写道：“还有一件很屈辱的事，现在想起来，真的让我很痛苦，甚至对人性本善都产生了怀疑。那时我还很小。另一邻家妇女因为和我母亲吵架，结果拿起掏粪的粪勺盖在我头上。在农村来说，这种做法是很恶毒的。其用意也很明显，是希望我永远晦气，永远也不会长大。”</p><p>“因为这些背景，再加上这次事件，母亲想到了离婚。我记得，母亲坐在门旁一边哭，一边抚摸我的头。她说以后就没有人照顾你和弟弟了，你长大了，要多照顾弟弟。那时，我11岁。母亲走了。留下孤零零的我，还有6岁的弟弟。”</p><p>幸而作者的母亲并未放弃，顶着周围人的怀疑、敌意与仇视，与改嫁后的丈夫一起坚持让作者继续上学。“母亲不止一次和我说过，她不能死，她要忍，她要坚持，因为她要让我上学，她要让她的两个孩子好好活着。”作者写到。</p><p>“上天眷顾可怜人。我竟然被北大录取了。后来，我才知道，我是北大在安徽招的23个文科学生里的最后一个。我还从别人那里知道，我们县重点中学有个复读的学生分数比我还高，但没有被北大录取。我是打心眼里感谢那一年北大在安徽的招生老师。是这位老师彻底改变了我的人生轨迹。”</p><p>作者感慨：“我考上北大的消息传到了小山村。村里人不知所措。或许他们永远也不会想到我会考上中国最好的大学，也不会想到从小受到晦气的我会有这么好的成绩。但人情冷暖、世态炎凉，情况往往就是这样。村民们变得比谁还快。他们马上给我家送礼，还张罗了要送我上学，见面了还时常请我去他们家吃饭。要知道，在考上之前，我几乎没在他们家吃过一次饭。那种感觉真是太讽刺了。”</p><p>文末，肖清和愧疚写道：“直到今天，除去在香港的两年，我在北大整整生活了8年。期间，欢乐多于泪水，幸福多于痛苦。但是，一想到家里的情况，忍不住还很痛苦。尤其是想到自己还没有能力让母亲安享晚年，心中甚是愧疚。”</p><p><strong>以下为文章全文：</strong></p><p>早就想好，要在论文后记时好好写上一笔，以资纪念。可是，真的要写后记时，却提笔忘言，竟不知从哪里开始。</p><p>在我上学的22年（1987－2009）中，充满了坎坷与风雨。7岁时，母亲想让我上一年级，因为交不起钱，只好先上幼儿园，荒废了宝贵的一年时间。12岁时，家里勉强让我上到五年级。差一点因为交不起考试费用，而失去参加小升初考试。班主任老师来我家做工作，可是，实在没钱。结果，班主任老师代我交了钱。我考了全乡第二名。然而，这个成绩丝毫没有给我带来喜悦。相反，却是无尽的痛苦。因为我不知道我家从哪里弄到学费。</p><p>邻居家的孩子都没有考上，相反却因为有钱，可以买上初中。当他们兴高采烈、欢声笑语地去镇上上学时，我只能在家里帮忙干农活。村里有家好心人，也是同一姓的家里人，想资助我上学。我很高兴。可是，很快希望就落空了。因为他家里人的反对，他也不得不放弃资助我的想法。</p><p>那一年秋天，同龄人都在新学校上学，过得让人兴奋、让我充满想象和向往的中学生活；可我，只能在家里放牛。牛是一种很灵性的动物，我和它逐渐成为好朋友；慢慢的，我可以把它放在山上，而不去管它。因为，这样我可以自己看书。那个秋天，我背完了整整一本宋词。直到现在，我所能记住的宋词都是那时背诵的。每当黄昏来临之时，我就和牛儿一起回家。和我家共养这条牛的大爷，总是毫无留情的批评我放牛不认真，牛儿没吃饱。满怀委屈的我，也不做争辩，只是在想，我不适合放牛吧。</p><p>可能看官想知道，为什么我家会这么穷？</p><p>人是没法选择自己的出生的。1980年我出生于安徽潜山一个小山村。可能对于潜山，看官没有什么印象，但是这个地方出过程长庚、张恨水、余英时等大家。古南岳（现称天柱山）就在县西北方向，相传大乔、小乔就生活在这个地方。而古南岳下面的潜河两岸曾是古皖国所在地；古南岳亦被称为皖山。安徽简称皖，亦是从此而来。</p><p>我们村里大部分都姓萧，相传是从河南迁过来的。我家到我爷爷（曾做过保长）的时候，开始衰落。我爷爷有三个孩子，我父亲是老小。大叔脚残疾。奶奶在我出生之前不久就去世了。二叔是个瞎子，很早就去世了。父亲读过新式学堂，但为人怯懦，没有主见，且不会生活。母亲则好强。我8岁时，爷爷病逝，家中无一分积蓄，多亏一位医生资助了20块钱，才最终办了丧事。爷爷去世后，家势每况愈下。母亲无奈开始四处做生意，一开始是收破烂，后来是做蔬菜生意。</p><p>虽然1980年已经改革开放了，但是我们那个小山村还是笼罩在一篇诡秘、落后、封建的风气之中。当我母亲第一次穿连衣裙回家时，全村都沸腾了。随后，她认识了一位生意上的异性朋友，并带他回家时，全村更是乱成一锅粥。我还记得，那天晚上，我、大叔以及那位母亲的朋友睡在一起的。突然，有邻居急冲冲叫开门。父亲起来开了们，一帮人就像凶神恶煞的土匪一样抢门而入。一群妇女稳住了我母亲。另一群男人们则冲进我睡觉的里屋。他们将母亲的朋友抓起来，推搡着去老屋大厅。他们让母亲的朋友跪在“天地君亲师”之前。</p><p>第二天，他们把他送到了村公所。有村干部在审问，有干部在笔录。全村人都围在外面看热闹。那种情景历久弥新，如今仍历历在目。我记得他们的表情，我记得他们的话语，他们是那么兴奋，是那么热烈。在小山村，这或许是一件大事了，大家好久都没看过。</p><p>本来，母亲因为性格暴躁、又很好强，经常与邻居吵嘴、打架。可是，父亲又软弱。母亲以及我自己经常受到别人的欺辱。只记得有一次，我们一家人正在吃饭。有个邻家妇女刚从田里回来，拿了个锄头，啪的一声就捅坏了我家的窗户。把我吓了一跳。因为我家是老屋，比较矮小。他们可以随便捅。还有一次，我们也在吃饭，另外一个邻家妇女刚从山上回来。若无其事、大摇大摆从我家门前经过。结果不知何事又和我母亲扭作一团。因为我家是老屋，和他们家共用一个走廊。通过这个走廊，我家可以经过他们家而去共用的老屋大厅。一般都是在大厅里进行红白喜事等大事。结果，他们家就很霸道的在这个走廊里安了一个门，只有他们可以开，而我们不可以。换句话说，他们随便可以过来，而我们不可以过去。</p><p>还有一件很屈辱的事，现在想起来，真的让我很痛苦，甚至对人性本善都产生了怀疑。那时我还很小。另一邻家妇女因为和我母亲吵架，结果拿起掏粪的粪勺盖在我头上。在农村来说，这种做法是很恶毒的。其用意也很明显，是希望我永远晦气，永远也不会长大。</p><p>因为这些背景，再加上这次事件，母亲想到了离婚。我记得，母亲坐在门旁一边哭，一边抚摸我的头。她说以后就没有人照顾你和弟弟了，你长大了，要多照顾弟弟。那时，我11岁。母亲走了。留下孤零零的我，还有6岁的弟弟。</p><p>可怜的弟弟没人照顾，又黑又瘦。直到现在村里人还叫他“黑老”。他常常自己睡在地上。由于没有人管教，他变得很顽皮。时常还小偷小扒。邻居就向我告状。我也没办法，常常关起门来用皮带打他，我一边打，一边哭。</p><p>也就是我考上初中的那一年，父亲还养了一个猪。我也没有求他卖掉猪给我上学。因为我知道，即使这一次凑到了学费，还有下一次。以前，我找他要学费时，他总是让我一个人去要债。他只会卖苦力，而别人也总是不及时给工钱。我只能认命。那一天冬季，他听从邻人的建议，让我跟随邻人的亲戚一起外去打工。那时，我才12岁。先来到离家几十公里的师傅家。帮师傅家干农活，早上要早起。寒冷的冬季早晨，田里全是一层白白的霜冻。我只能咬牙坚持下去。有时，师傅让我给他们孩子送衣服或者书包。看到同龄人在学校里安静的上学，我心里不知道是什么滋味。后来，师傅带我外去了。来到另一个城市，宣城。</p><p>我师傅是弹棉花的。因为我力气小，只能做一些简单的话，如刨旧棉絮、牵线等。刨旧棉絮时，常常弄得鼻子里都是棉絮，几乎令我窒息。牵线是用中指勾着，常常弄得中指关节处裂开大口子，血流不止。那时，我身体还不好，常常有蛔虫爬出来，我自己还不知道是怎么回事。</p><p>辛苦的冬天过去了，我挣到了75块钱。我穿着在外打工时好心人给我的衣服回家了，很认真的将这75块钱交给父亲。他拿着钱去办了年货，我们过了一个快乐的新年。后来，我从别人那里知道。父亲舍不得卖猪给我上学，却听从邻人一起偷别人家的打稻机，被抓，受罚，结果卖了猪交罚款。</p><p>第二年春天，母亲在外婆家听说了我的事情，非常痛心。尤其是听到有人说我考了全乡第二名之后，便义无反顾要让我重新走入课堂。一开始，村里人还是很“小心”，还跟我说：“你妈妈会不会拐走你，要卖了你呀？”我无所适从。外婆家离我家有20多公里，那一次天正在下雨，母亲一直冒雨走来找我，却遭到村里人的白眼。</p><p>很幸运的是，通过母亲的努力，以及母亲改嫁后的叔叔——也就是那位他的朋友的支持，我终于重返学校了。我重新上5年级，并于同一年参加小升初考试，结果考了第一名。上了初中，我的成绩依然名列前茅。但那时也非常艰苦。虽然母亲改嫁了，但家里的经济也很紧张。而且，她改嫁到的地方也是和我们村子一样。对于这位外来妇，村民们充满了怀疑、敌意与仇视。尤其是母亲执意要给我上学，更让他们愤怒。</p><p>他们认为我母亲是要拐骗他们家的财产，是不安心在那里过日子。母亲改嫁后的丈夫家的亲戚朋友对此尤为阻挠。妯娌之间常常吵嘴打架。尽管受到这么的阻挠与艰难，母亲还毅然坚持给我上学。不过，很幸运的是，母亲的丈夫——我的继父，对我上学还是非常尽心、非常努力，尽管他有时也忍不住会受到别人的挑唆，对我母亲大打出手。母亲不止一次和我说过，她不能死，她要忍，她要坚持，因为她要让我上学，她要让她的两个孩子好好活着。</p><p>在那段艰难困苦的日子里，我最担心的不是我的成绩，而是每个学期开始。因为，学费问题让我常常一筹莫展。常常是开学之初，我在马路边等母亲来。常常是望眼欲穿，常常是欲哭无泪。饿了，啃一口父亲给我做的干粮；渴了，就只得忍着。马路上尘土飞扬，我那时是多么恨汽车！我恨它们耀武扬威的在我面前驶过，而留下令人讨厌的漫天灰尘！</p><p>然而，温暖的校园生活让我孤独、受伤的心灵常常充满了阳光和雨露。亲爱的老师和同学们常常帮助我。有位英语老师的夫人在食堂工作，好心的她常常不收我的饭票，还多给我饭菜。化学老师常常塞给我10块 钱。而我最幸福的事就是每个周末，我常常买些好吃的东西带回家，给大叔和弟弟吃。</p><p>可是，有一次，由于我的粗心，让我犯下了不可弥补的错误，这一辈子也不会得到饶恕。因为常常吃不饱，父亲常常给我做一些干粮让我带到学校吃。但我常常吃不完，就带回家，可以给猪吃，不能浪费了。但是，那时没有多少粮食。大叔很饿，就找到我书包里留下的干粮。可是，这些干粮因为发霉了，大叔吃了之后中毒身亡。无论我怎样后悔，无论我怎样哭泣，无论我怎样呼喊，疼我爱我、与我相依为命、善良可怜的大叔还是走了。在他去世前一年暑假，父亲外去打工了，我睡在床上，他早上起得很早，要去干农活。结果邻人偷走了装有财物和证件的箱子。大叔害怕父亲回来会责骂他，他使劲地用脑子撞墙。他恨自己为什么没有锁门？为什么没有看好家？一年后，受尽了痛苦和屈辱的大叔离开了这个世间。现在，我想好好伺候他，买好吃的给他，可这个简单的愿望都无法实现了。</p><p>初中三年很快就过去，虽然我的分数可以上重点中学。但校长表示，如果我高中的成绩还是和初中一样好，学校就免除我的学费。因此，我还是留在母校继续上高中。最令我焦虑和担心的事就变成了每个期末统计成绩。还好，每个学期我都是全校第一。其中，有个小插曲让我记忆犹新。</p><p>由于母校的风气不甚好。高年级的学生常常无缘无故打低年级学生。有一次，有两位复读的学生，因为家里有钱，两人住了一个宿舍。他们把我和另一个同学抓进他们的宿舍，对我们扇耳光，又打又踹。打了两个小时，才放我们出来。忍无可忍的我们，联合高一的其他两个班级，我们写了大字报，把床单做成横幅。结果，校长找到了我，很严肃的告诉我：“你还想不想上学了？”我一听吓哭了，泪水不争气的流个不停。幸运的是学校很重视我们的诉求，并且对我们的处理也非常宽大。事情结束了，也没有追究。</p><p>高中期间，老师、同学对我的帮助更多。新校长常常给我100块，班主任、英语老师等等常常让我去他们家吃饭。同学也常常帮助我。周末，同学们也不嫌弃我家的破旧，一起到我家玩。邻居还很好奇的问他们：“他家这么穷，你们来干什么？”因为镇里离家有5公里，初中时，我每个周末都要回家。因为要带咸菜和米。有时回到家，只有我一个人。肚子早就饿了，只好自己烧饭。又烧不了，弄得汗水和泪水一起流。没有米的时候，就常常吃地瓜。邻居又好奇的问：“你喜欢吃地瓜吗？吃地瓜会饱吗？”弟弟一知道我回来了，就立马消逝得无影无踪。他怕我管他打他。高二的时候，在班主任、校长的帮助下，镇上有位领导陈叔开始资助我。加上学习任务重，周末回家的次数少多了。</p><p>1999年高考，我估了分数可能要比重点线多7、80分。校长就给我填了北京大学。他说如果考不上就免费让我复读。班主任则比较谨慎。因为我在提前录取志愿填了外交学院。我还记得班主任带我去了合肥，见了招生老师。结果老师说我太矮（我1米65）。班主任哀求道：“他还是小孩，还会长的。”最终还是不行。班主任担心我可能考不上北大，太可惜了。</p><p>不过，上天眷顾可怜人。我竟然被北大录取了。后来，我才知道，我是北大在安徽招的23个文科学生里的最后一个。我还从别人那里知道，我们县重点中学有个复读的学生分数比我还高，但没有被北大录取。我是打心眼里感谢那一年北大在安徽的招生老师。是这位老师彻底改变了我的人生轨迹。</p><p>我考上北大的消息传到了小山村。村里人不知所措。或许他们永远也不会想到我会考上中国最好的大学，也不会想到从小受到晦气的我会有这么好的成绩。但人情冷暖、世态炎凉，情况往往就是这样。村民们变得比谁还快。他们马上给我家送礼，还张罗了要送我上学，见面了还时常请我去他们家吃饭。要知道，在考上之前，我几乎没在他们家吃过一次饭。那种感觉真是太讽刺了。</p><p>因为陈叔的帮忙，我很快就筹到学费；陈叔把我送到了合肥，在分别之际，他请我吃饭。当时，我哭了，不知道是感激，还是担心未来的生活。我只记得他对我说了一句：“清和，不要怕，我们会一直支持你！”</p><p>我清晰的记得，我一个人扛着大包裹，坐着学校安排的大巴，来到北大昌平校区。报道的老师问我：“你一个人来北京的吗？”我点点头。她说，“了不起。”一开始，我的普通话不是很好。常常被人误会。</p><p>来到北大后，先前的担心变得没必要了。我们县里有一家人开始无私资助我。同时，班主任也了解到我的情况，常常帮助我。因为学校里有各种资助，还有各种奖学金，我的经济状况开始好转。大一开始，根据成绩以及家庭状况，我就获得了奔驰奖学金，连续四年。（也是在大一寒假，我家才通了电，尽管我们村很早就通了电；以前，我一直在油灯下看书。）</p><p>大四时，我一方面申请了贷款，另一方面又非常荣幸的获得了国家一等奖学金。2003年，我获得免试上本系研究生的机会。非常感谢我的导师孙尚扬教授的帮助，2005年，我又由硕士研究生转为博士研究生。2006年，在孙师无私的帮助以及香港中文大学卢龙光教授的支持下，我获得北大与香港中文大学联合培养博士生的资格。从2006年到2008年期间，我在香港生活、学习。</p><p>直到今天，除去在香港的两年，我在北大整整生活了8年。期间，欢乐多于泪水，幸福多于痛苦。但是，一想到家里的情况，忍不住还很痛苦。尤其是想到自己还没有能力让母亲安享晚年，心中甚是愧疚。</p>";
        long begin = System.currentTimeMillis();
        List<String> subsection = StringUtil.subsection(str);
        System.out.println(String.format("用时：%dMS", (System.currentTimeMillis() - begin)));
        System.out.println(subsection.size());
        int i = 1;
        for (String line : subsection) {
            System.out.println(String.format("第%d行=>", i) + line);
            i++;
        }
    }


}
